package com.xusheng.cli.entity.permissionModule;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.xusheng.cli.common.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 总后台 权限表(Permission)表实体类
 *
 * @author jy
 * @since 2022-01-17 15:47:42
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Permission extends BaseEntity {

	private static final long serialVersionUID = 1230827138380963259L;

	/**
	 * 父级id 用于展示作用 最顶级默认为0
	 */
	@JsonProperty("pId")
	private Long parentId;

	/**
	 * 权限展示名称
	 */
	private String label;

	/**
	 * 后台权限控制使用的名称
	 */
	private String code;

	/**
	 * 图标
	 */
	@JsonProperty("img")
	private String icon;

	/**
	 * 访问时的url
	 */
	private String url;

	/**
	 * 是否显示 用于页面是否在菜单中显示
	 */
	@JsonProperty("show")
	private Boolean display;

	/**
	 * 排序
	 */
	@JsonProperty("order")
	private Integer sort;

	/**
	 * 是否为内置权限
	 */
	@JsonProperty("init")
	private Boolean initial;

	/**
	 * 是否启用 1 启用 0 禁用
	 */
	@JsonProperty("ena")
	private Boolean enable;

	/**
	 * 页面类型 ,菜单类型 还是接口类型 还是按钮类型 控制显隐和访问  page  menu  button  api
	 */
	private String type;

	@JsonProperty("pChild")
	@JsonInclude(JsonInclude.Include.NON_EMPTY)
	@TableField(exist = false)
	private List<Permission> pChild;

}

